#ifndef SAFEQUEUE_H
#define SAFEQUEUE_H

#include <mutex>
#include <queue>
#include <functional>
#include <future>
#include <thread>
#include <utility>
#include <vector>

template <typename T>
class SafeQueue
{
private:
    std::queue<T> m_queue; //利用模板函数构造队列
    std::mutex m_mutex; // 访问互斥信号量
public:
    SafeQueue() {};
    SafeQueue(SafeQueue &&other) {};
    ~SafeQueue() {};

    // 返回队列是否为空
    bool empty();
    int size();
    // 队列添加元素
    void enqueue(T &t);
    // 队列取出元素
    bool dequeue(T &t);
};

#endif // SAFEQUEUE_H

